package cn.line5.seam.example;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import cn.line5.seam.annotations.AjaxRemote;
import cn.line5.seam.annotations.In;
import cn.line5.seam.annotations.Name;
import cn.line5.seam.annotations.Out;
import cn.line5.seam.annotations.Parameter;
import cn.line5.seam.annotations.Request;
import cn.line5.seam.contexts.UploadContext;
import cn.line5.seam.db.PageResult;
import cn.line5.seam.webapp.UploadResult;

@Name("testRemote")
/**
 * <h1>LSEAM框架示例组件调用类</h1>
 * <br/>
 * 
 * @author Liu,Xiaojun
 */
public class TestRemote {

	@In("testService")
	// 注入业务层接口
	private TestService testService;

	@Parameter
	// 参数
	private String id;

	@Parameter
	// 参数
	private String currentPage;

	@Parameter
	// 参数
	private TestVo vo;

	@Parameter
	// 参数
	private String[] deleteId;

	@Out
	// 输出
	private List<TestVo> list;

	@Out
	// 输出
	private TestVo returnVo;

	@Out
	// 输出
	private PageResult<TestVo> pageResult;
	
	@Request
	private HttpServletRequest request;

	// 列表
	public void listUser() {
		list = this.testService.getList();
	}

	// 分页列表
	public void listPageUser() {
		pageResult = this.testService.getPageList(currentPage);
	}

	// 获取单个
	public void getUser() {
		returnVo = this.testService.getUser(id);
	}

	// 插入
	public void insertUser() {
		UploadResult f = UploadContext.getUploadResult();
		if (f != null && f.isSuccess()) {
			if (f.getFileNum() > 0)
				vo.setUserPhoto(f.getFileList().get(0).getUploadFileName());
			this.testService.saveUser(vo);
		}
	}

	// 更新
	public void modifyUser() {
		UploadResult f = UploadContext.getUploadResult();
		if (f != null && f.isSuccess()) {
			if (f.getFileNum() > 0)
				vo.setUserPhoto(f.getFileList().get(0).getUploadFileName());
			this.testService.saveUser(vo);
		}
	}

	// 删除
	public void deleteUser() {
		this.testService.deleteUser(deleteId);
	}

	// ajax删除
	@AjaxRemote
	public Boolean deleteUser(String userId) {
		return this.testService.deleteUser(userId);
	}

	// ajax插入
	@AjaxRemote
	public Boolean insertUser(TestVo vo) {
		return this.testService.saveUser(vo);
	}

	// ajax更新
	@AjaxRemote
	public Boolean modifyUser(TestVo v) {
		return this.testService.saveUser(vo);
	}

	// @AjaxRemote
	// public TestVo getTestVo(TestVo vo) {
	// return this.testService.getUser(vo.getUserId());
	// }
	//	
	// @AjaxRemote
	// public int getTestint(TestVo vo) {
	// return 1;
	// }
	//	
	// @AjaxRemote
	// public Integer getTestInt(TestVo vo) {
	// return 1;
	// }
	//	
	// @AjaxRemote
	// public String getTestString(TestVo vo) {
	// return "1";
	// }
	//	
	// @AjaxRemote
	// public boolean getTestboolean(TestVo vo) {
	// return false;
	// }
	//	
	// @AjaxRemote
	// public Boolean getTestBoolean(TestVo vo) {
	// return true;
	// }
	//	
	// @AjaxRemote
	// public Boolean getTestParam(int x) {
	// return true;
	// }

	// @AjaxRemote
	// public TestVo getTestVo(String id) {
	// return this.testService.getUser(id);
	// }
	//	
	// @AjaxRemote
	// public String getLoginName(String id) {
	// return this.testService.getUser(id).getLoginName();
	// }
	//	
	// @AjaxRemote
	// public String getLoginName(TestVo vo) {
	// return this.testService.getUser(vo.getUserId()).getLoginName();
	// }

	// public static void main(String[] args){
	// Short xx = 1;
	// Number tt = 1;
	// System.out.println(xx instanceof java.lang.Number);
	// System.out.println(tt instanceof java.lang.Integer);
	//	}
}
